﻿using OpenQA.Selenium;
using OpenQA.Selenium.Edge;
using OpenQA.Selenium.Support.UI;
using System;
using System.Threading;
using SeleniumExtras.WaitHelpers;
using System.Configuration;

namespace 签到项目
{
    internal class Program
    {
        private static string username = ConfigurationManager.ConnectionStrings["usernameInput"].ToString();
        private static string password = ConfigurationManager.ConnectionStrings["passwordInput"].ToString();
        static void Main()
        {


            // 设置Edge选项
            var options = new EdgeOptions
            {
                // 如果需要无头模式，可以取消注释以下行
                // AddArgument("headless");
            };




            // 创建EdgeDriver实例
            using (IWebDriver driver = new EdgeDriver(options))
            {
                // 访问论坛首页
                string homeUrl = "http://www.123-bt.cn/";   // 请替换为实际的论坛首页URL
                driver.Manage().Window.Maximize();
                driver.Navigate().GoToUrl(homeUrl);

                // 等待页面加载完成
                Thread.Sleep(1000); // 等待1秒，确保页面加载和JavaScript执行完成

                try
                {
                    // 定位登录链接并点击
                    IWebElement loginLink = driver.FindElement(By.ClassName("deandlu"));
                    loginLink.Click();

                    // 等待登录窗口完全加载
                    Thread.Sleep(1000); // 等待1秒，确保登录窗口加载完成

                    // 定位用户名和密码输入框，并输入账号密码
                    // 注意：这里的选择器需要根据实际页面元素进行调整
                    IWebElement usernameInput = driver.FindElement(By.CssSelector("input[name='username']")); // 根据name属性定位
                    IWebElement passwordInput = driver.FindElement(By.CssSelector("input[name='password']")); // 根据name属性定位
                    
                    
                    usernameInput.SendKeys(username); // 替换为您的用户名
                    passwordInput.SendKeys(password); // 替换为您的密码

                    IWebElement loginButton = driver.FindElement(By.CssSelector("button[name='loginsubmit']")); // 根据name属性定位
                    loginButton.Click();

                    // 等待登录操作完成
                    Thread.Sleep(1000); // 等待1秒，确保登录操作完成

                    // 定位签到链接并点击
                    IWebElement signInElement = driver.FindElement(By.Id("mn_Nac60"));
                    signInElement.Click();
                    WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
                    IWebElement element = wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("JD_sign")));
                    element.Click();


                    // 等待签到操作完成
                    Thread.Sleep(2000); // 等待2秒，确保签到操作完成

                    // 获取页面HTML内容或其他操作
                    string pageSource = driver.PageSource;
                    Console.WriteLine(pageSource);
                    driver.Quit();

                }
                catch (NoSuchElementException ex)
                {
                    Console.WriteLine("无法找到元素: " + ex.Message);
                    driver.Quit();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("发生错误: " + ex.Message);
                    driver.Quit();
                }
            }
        }

    }
}
